A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, such as an Ethernet network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Intermediate devices (referred to as network devices or nodes) are interconnected so as to provide an infrastructure for forwarding the packets between computing devices. For example, computer networks may includes routers, switches, gateways, firewalls and a variety of other devices.
In many networks, it is important for nodes within the network to have accurate current time information. For example, accurate time information (i.e., time of day) may be necessary for computing timing delays for communicating packets between network nodes. Accurate timing information regarding the transit time of packets may be important to assess network efficiency and to ensure quality of service and performance measures. As an example, transit-delayed packets may result in interrupted audio service in voice over Internet Protocol (VoIP) applications. To correctly assess the timing information, it is important for the current time on all the interconnected computing devices of the network to be accurately synchronized to a primary reference time. The primary reference time may be provided by a primary reference clock source device, such as a GPS.
Typically, some network nodes are configured as time server nodes to determine the primary reference time and deliver that time to other nodes configured as time client nodes. Common examples of such nodes include routers within a service provider network. The time client node will typically send an acknowledgment to the server node which may be the only entity capable of confirming accurate time synchronization. Some networks use specific synchronization protocols that specify and require a maximum one second round trip delay between delivery of the primary reference time by the server node and response by the client node. As such, although providing for guaranteed time synchronization, the timing constraints and requirements of the protocols may be challenging to meet.